<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>

        var a= {}
        Object.defineProperty(a,"b",{
            value:123,
            writable:false,
            enumerable:false,//是否可迭代，默认为true，既可以用forEach
            configurable:false
        })



    console.log(a.b);//123

    var MyClass=function () {

    }

    MyClass.prototype=function () {
        MyClass.prototype.out=function () {

        }
    }


    //静态函数
    MyClass.myFun=function () {
        console.log("func")
    }



    MyClass.myFun();

    var array={a:"A",B:"B"}

        Object.defineProperty(array,"value",{
            value:123,
            writable:false,
            enumerable:false,//是否可迭代，默认为true，既可以用forEach
            configurable:false
        })

    Object.getOwnPropertyNames(array)//得到全部属性
    Object.keys(array);//迭代出对象所有的可读的属性
    //判断是否存在属性。

    console.log( Object.keys(array).indexOf("a")!=-1)

        Object.setPrototypeOf(array,{
            a:1.,
            b:2
        })

        console.log(array);  //__proto__
        //out>>>Object {a: "A", B: "B", value: 123}B: "B"a: "A"value: 123__proto__: Objecta: 1b: 2__proto__: Object
        Object.hasOwnProperty(array,"value");//错误
        array.hasOwnProperty("value");//正确输出

        //JS的六中数据类型
    //Object boolean String function undefined number
    //Function 是Object的实例，Object的是实例都会拥有Object.protoype

</script>
</body>
</html>